Conventional data processing systems provide capabilities for organizing user interface objects such as icons, windows and the like. Such capabilities require user interaction for manipulating objects so that placement, size and appearance of objects are satisfactory to the user. This interaction may be facilitated with mouse control, and in many scenarios, the mouse is the only device required for manipulating objects. A user may choose to redimension a window, drag an icon to another location on a user interface desktop, place icons within folders, or use a utility to modify color, shading and/or pattern of objects. Different users have different preferences. Window characteristics such as background, foreground, error message text typeface, font and color, title bar appearance and other classifications of object real estate on a user interface may be conveniently tailored to suit a particular user. Appearance changes remain changed through data processing system power off or reboot and only a subsequent change modifies a current setting. Common windowing data processing systems such as "MICROSOFT WINDOWS", "SUN VIEW", "APPLE MACINTOSH", X Window System and "INTERNATIONAL BUSINESS MACHINES OPERATING SYSTEM/2" ("IBM OS/2"), provide graphical user interfaces wherein a user is provided with convenient methods for manipulating locations of user interface objects and modifying the size or appearance of user interface objects. Those skilled in the art are familiar with terms such as "look and feel" of a user interface and the methods for tailoring. ("MICROSOFT" and "WINDOWS" are trademarks of Microsoft Corporation. "SUN" is a trademark of Sun Microsystems, Inc. "APPLE" and "MACINTOSH" are trademarks of Apple Computer Corporation. "IBM", "OPERATING SYSTEM/2" and "OS/2" are trademarks of International Business Machines Corporation.)
As data processing systems become populated with more applications and their associated user interface objects and features, the job of desktop organization becomes more time consuming and is often on-going. Icons and windows of newly spawned applications must often be relocated. Windows must often be resized and placed in a priority view position with respect to other windows. A user may organize the desktop consistently throughout use, no matter how many times the data processing system has been powered off or rebooted. Users recognize that consistent desktop arrangement facilitates efficient object manipulation because the user can depend on where objects are by experience.
Conventional data processing systems have provided methods for dealing with user interface organization beyond object manipulation through a variety of methods. Applications which spawn windows will often tile the windows so that a left and top border of an overlaid window remains visible for easy title bar identification and mouse selection. Those skilled in the art refer to this as cascading windows. This allows many windows to occupy a smaller user interface area while preserving the ability to easily identify and select the window. Often a user manually cascades windows, but applications may be programmable to perform this operation automatically.
Desktop environments, such as "WIDEANGLE" for "MICROSOFT WINDOWS" and "IBM OS/2", allow a user to design and save a custom desktop environment to be automatically loaded at the start of each work session. "IBM OS/2" provides a facility for restoring the desktop to a previous state after the data processing system is shutdown or powered off. Applications which were active at the time of data processing system shutdown are automatically invoked upon the next data processing system startup. Objects are restored to the locations they occupied at the time of shutdown.
Application Ser. No. 07/923,698 filed by W. J. Johnson et al entitled "Method of and Apparatus for Navigating to a Hidden Window" (IBM docket DA9-92-016) disclosed a method for pseudo-random desktop object reorganization upon user request. This disclosure provided a means for reorganizing desktop objects so that most hidden objects become accessible. This disclosure did not address providing means for consistent user dependent desktop object organization throughout time.
Conventional systems only save a desktop as a snapshot at some point in time. Forthcoming objects not contained in a snapshot are subject to default data processing system placement, sizing and characteristics. Saved arrangements are often system dependent, not user dependent. In data processing systems where a user must manually save desktop states, a power-failure could lose a user's desktop state before he had a chance to save it. A user may even forget to save a desktop. On the other hand, a data processing system which automatically returns the desktop to the state it was last in before a power-off or reboot, provides no means for distinguishing between different user's desktops for the next data processing system startup. More importantly, conventional systems do not keep track of all objects that are manipulated by a user throughout time. Only those objects present at the time of saving a desktop state are applicable for a retrieved desktop. Arrangements saved as a desktop snapshot for later recall often will not contain the many objects which may be present in the future. Conventional systems do not have a method for automatically locating a newly spawned desktop object, regardless of at what point in time an object happens to be present on the desktop. Conventional systems will utilize a system default or application programmed method for all newly spawned objects, regardless whether the objects were spawned at least once during the history of a user, and regardless of whether the user manipulated it to a more satisfactory location, size and/or appearance.
Data processing systems are often shared by more than one user. Conventional systems do not automatically recognize users for the purpose of automatically recalling desktop arrangements and affecting forthcoming spawned objects. Furthermore, conventional systems do not automatically recognize users for the purpose of automatically recalling desktop object locations, dimensions and appearance, including that of forthcoming spawned objects.